// 方法装饰器
/**
 *
 * @param targetClassPrototype 原型
 * @param methodname 方法名
 * @param methodDecri 方法数据属性
 */
function MyMethodDecorator<T>(
  targetClassPrototype: any,
  methodname: string,
  // methodDecri: TypedPropertyDescriptor<T>
  methodDecri: TypedPropertyDescriptor<T>
) {
  console.log("targetClassPrototype", targetClassPrototype);
  console.log("methodname", methodname);
  console.log("methodDecri", methodDecri);
  (methodDecri as any).value();
}

class RoleService {
  public roleName: string = "管理员";
  constructor() {}

  @MyMethodDecorator
  DistribRoles() {
    console.log("分配角色...");
  }
}

export {};
